Method for adaptive image enhancement

ABSTRACT

A filtering system and method are disclosed, to perform simultaneous, de-noising, and details enhancement tasks of a video image. The efficient filtering system includes multiple filters, which operate on a portion of the video image that has been partitioned into multiple rings. Using the filtering system, complex mathematical operations are avoided.

TECHNICAL FIELD

This application relates to image processing and, more particularly, to efficient image filtering operations.

BACKGROUND

Image and video enhancement processes usually contain two conflicting tasks—noise reduction and details enhancement. The noise reduction task involves attenuating high frequency components, while the details enhancement task is performed by increasing high and mid frequency elements of an image. Hence, some linear approaches for reconstructing images or video sequences that have been affected by blurring and by additive noise have very poor performance. The more sophisticated adaptive approaches are effective but are more computationally demanding and are difficult to implement in real time.

Thus, there is a continuing need for a method for image and video enhancement that overcomes the shortcomings of the prior art.

BRIEF DESCRIPTION OF THE DRAWINGS

The foregoing aspects and many of the attendant advantages of this document will become more readily appreciated as the same becomes better understood by reference to the following detailed description, when taken in conjunction with the accompanying drawings, wherein like reference numerals refer to like parts throughout the various views, unless otherwise specified.

FIG. 1 is a block diagram of an adaptive filtering scheme, according to some embodiments;

FIG. 2 is a block diagram of an efficient filtering system, according to some embodiments;

FIG. 3 is a block diagram illustrating the partitioning of a 5×5 environment using three ring environments, according to some embodiments;

FIG. 4 is a flow diagram illustrating operations performed by the efficient filtering system of FIG. 2, according to some embodiments;

FIG. 5 is a block diagram of ring filters with simple (integer) coefficients, according to some embodiments;

FIG. 6 is a diagram of the filter frequency response for a high-frequency enhancement of the efficient filtering system of FIG. 2, according to some embodiments;

FIG. 7 is a diagram of the filter frequency response for a mid-frequency enhancement of the efficient filtering system of FIG. 2, according to some embodiments; and

FIG. 8 is a diagram of the filter frequency response for a high-frequency attenuation of the efficient filtering system of FIG. 2, according to some embodiments.

DETAILED DESCRIPTION

In accordance with the embodiments described herein, an efficient filtering system and method are disclosed, for performing simultaneous, de-noising, and details enhancement tasks of a video image. The efficient filtering system includes multiple filters, which operate on a portion of the video image that has been partitioned into multiple rings. Using the efficient filtering system, complex mathematical operations are avoided.

FIG. 1 is a block diagram of an adaptive filtering scheme 40, according to some embodiments. The adaptive filtering scheme 40 includes a neighborhood classification module 22, a details enhancement filter 24, a transfer function module 26, a noise reduction filter 28, and an alpha blending module 32. These components perform operations on an input image 20 to produce an output image 30.

The neighborhood classification module 22 generates a continuous measure of the pixel neighborhood of the input image 20, including data that are visually significant (visual significant measure). The neighborhood classification module 22 measure has low values for flat areas and high values for neighborhoods with significant details (e.g., edge or texture). The noise reduction filter 28 may be a linear smoothing (averaging) filter. The details enhancement filter 24 may be a linear sharpening (un-sharp mask) filter.

The transfer function module 26 receives the visual significant measure from the neighborhood classification module 22. Based on this measure it produces, a normalized factor (between 0 and 1), denoted α, according to which the output of the two filters 24 and 28 are blended by the alpha blending module 32. For low visual significant measure values, the contribution of the noise reduction filter (module 28) get higher weight, while for high visual significant measure values, the contribution of the details enhancement filter (module 24) get higher weight.

The effectiveness of the adaptive filtering scheme 40 takes into consideration that the human visual system is sensitive to noise in flat image regions and is less sensitive to noise in regions with high variability.

An implementation of the general adaptive filter scheme 40 (FIG. 1) may be relatively expensive, due to computing the two filtering operations for each pixel. FIG. 2 is a block diagram of an efficient filtering scheme 100, according to some embodiments. The efficient filtering system 100 involves significantly less computational effort than the filtering scheme 40.

The efficient filtering system 100 makes use of the radial symmetry of smoothing and sharpening filters. As with the adaptive filtering scheme 40, the efficient filtering system 100 includes the neighborhood classification module 22, a transfer function module 36, and the alpha blending module 32. Instead of the details enhancement filter 24 and noise reduction filter 28, however, the efficient filtering system 100 employs three ring filters, a ring filter RF₀, a ring filter RF₁ and a ring filter RF₂. The ring filters may be standard linear filters that each has as input a ring-shaped neighborhood. The efficient filtering system 100 may be generalized to n rings, where n is an integer.

The neighboring classification module 22 and the transfer function module 26 may be standard image processing modules that analyze the current pixel (P_(0,0)) neighborhood and set the values of the parameters, α and β. The neighborhood classification module 22 traditionally uses such features as local variability, responses of horizontal and vertical Sobel operators, and so on. The transfer function module 26 produces the blending coefficients, α and β, in the desired range and in such a way that small change in the neighborhood features does not cause a significant change in the blending coefficient values. This continuity may prevent temporal artifacts that may otherwise be caused by strong detail enhancement operation.

The efficient filtering system 100 is demonstrated on a 5×5 filtering environment, although the principles illustrated herein can be applied to other environments. The 5×5 filter computation may be partitioned into three simple “ring” filter computations, with the results blended in an adaptive way. The ring filters blending, using only two multiplications, may produce results comparable to the results achieved by the highly complex general scheme (the adaptive filter 40 of FIG. 1).

FIG. 3 illustrates how a 5×5 filtering environment may be split into three environments suitable for filtering by the efficient filtering system 100, according to some embodiments. A 5×5 arrangement of pixels 80 is depicted, with each pixel being uniquely denoted according to its row and column location as P_(row,column), where −2≦row≦2 and −2≦column≦2.

The 5×5 arrangement 80 may be divided into three “ring” arrangements, with the “outside” of the arrangement 80 forming a first ring 82, the center minus the middle pixel, P_(0,0), forming a second ring 84, and the middle pixel, P_(0,0), forming the third ring 86. The ring 82 may be processed by the ring filter R₂, the second ring 84 may be processed by the ring filter R₁, and the third ring 86 may be processed by the ring filter R₀, of the efficient filtering system 100.

Denoting the pixel indexes in the 5×5 neighborhood by

$\left\{ P_{i,j} \right\}_{\underset{{j = {- 2}},2}{{i = {- 2}},2}}$

and the corresponding filter coefficients by

$\left\{ F_{i,j} \right\}_{\underset{{j = {- 2}},2}{{i = {- 2}},2}},$

the output of the three ring filters may be written as:

${{PR}_{0} = P_{0,0}},{{PR}_{1} = {\sum\limits_{i,{j \in R_{1}}}{F_{i,j}\left( {P_{i,j} - P_{0,0}} \right)}}},{{PR}_{2} = {\sum\limits_{i,{j \in R_{2}}}{{F_{i,j}\left( {P_{i,j} - P_{0,0}} \right)}.}}}$

The adaptive filter output is now given by:

P _(out) =PR ₀ +αPR ₁ +βPR ₂,

where α and β are coefficients provided by the transfer function module 26. Since the two outer ring filters are computed on pixel differences, P_(i,j)−P_(0,0), it is verified that this adaptive filter is always normalized, i.e. the sum of its coefficients is equal to 1. Hence, filter coefficient normalization (which is expensive computationally) is avoided. By using the ring filters, R₀, R₁, and R₂, the adaptive filtering may be performed with a computational complexity that is equivalent to computing one linear filter only.

The above case may be though of as an n-ring implementation, where n=2. Generalized to n rings for integer n, the adaptive filter output may be given by:

P _(out) =PR ₀+α₁ PR ₁+α₂ PR ₂+ . . . +α_(n) PR _(n),

where α₁, α₂, . . . , α_(n) are coefficients provided by the transfer function module 26. For the case where n=2, the coefficient, α₁=α, and α₂=β.

FIG. 4 is a flow diagram of operations performed by the efficient filtering system 100, according to some embodiments. The filter 100 receives an image 20 to be filtered (block 102). For each pixel in the input image, a symmetric neighborhood of 5×5 pixels is being processed by the three ring filters, R₀, R₁, and R₂.

The next operations 104, 106, and 108 are performed simultaneously, in some embodiments. The three ring portions 82, 84, and 86, may each be filtered using the respective ring filters, R₀, R₁, and R₂ (FIG. 2). The outer portion may be filtered using the R₂ ring filter (block 104). The middle portion may be filtered using the R₁ ring filter (block 106). The inner portion may be filtered using the R₀ ring filter (block 108).

While the ring filters, R₀, R₁, and R₂ are filtering their respective portions of the pixel neighborhood, the filtering system 100 may also be performing neighborhood classification (block 112). Here, the pixel neighborhood is analyzed. Then, the transfer function 36 is executed, which generates the coefficients, α and β (block 114). Following the filtering operations, the results may be alpha blended using the alpha blending module 32 (block 110).

In some embodiments, the computational efficiency of the efficient filtering system 100 may further be improved by using constant (and very simple) coefficients for the ring filters, R₀, R₁, and R₂. In this way, the ring filter computations may be performed with no multiplications and the adaptive filter may be computed with two multiplications (α*PR₁ and β*PR₂) only.

Despite its efficiency, the ring filter-based adaptive filter 100 can perform an entire range of image processing operations usually achieved by more complex adaptive filters, in some embodiments. This is done by carefully selecting the coefficients, α and β. Table 1 demonstrates performing the three basic image processing operations by using the ring filter coefficients 92, 94, and 96 in FIG. 5, according to some embodiments. Table 1 provides data for high-frequency enhancement, mid-frequency enhancement, and high-frequency attenuation, including values for coefficients, α and β. FIGS. 5, 6, and 7 illustrate the filter frequency responses for the high-frequency enhancement, mid-frequency enhancement, and high-frequency attenuation examples, respectively, of Table 1.

TABLE 1 image processing operations based on adaptive ring filters. filter frequency filter type response high-frequency enhancement see FIG. 6 (emphasizes details) $\alpha = {- \frac{1}{10}}$ $\beta = {- \frac{1}{160}}$ mid-frequency enhancement see FIG. 7 (emphasizes major details and reduces noise) $\alpha = \frac{1}{10}$ $\beta = {- \frac{1}{40}}$ high-frequency attenuation (noise reduction) see FIG. 8 $\alpha = \frac{1}{20}$ $\beta = \frac{1}{320}$

The efficient filtering system 100 may be implemented using hardware, software, or a combination of software and hardware. In some embodiments, the efficient filtering system 100 allows implementing the advance image processing feature, adaptive filtering, using only a fraction of the resources required for this feature in a standard implementation. Hence, reduced gate count or processing time, or both, may be realized using the efficient filtering system 100.

The efficient filtering system 100 is a novel approach for implementing adaptive filtering not found in prior art implementations. Adaptive filtering is a common practice in image processing. However, adaptive filtering is complex and requires a lot of system resources. Hence, adaptive filtering is prohibitive in certain platforms. With the efficient filtering system 100, high quality adaptive filtering may be performed with very low resource consumption. The efficient filtering system 100 also allows a very simple control over the functionality of the adaptive filter, since only two parameters (α and β) are involved in the filter design. This is another advantage over other implementations that require the tuning of many coefficients and parameters.

While the application has been described with respect to a limited number of embodiments, those skilled in the art will appreciate numerous modifications and variations therefrom. It is intended that the appended claims cover all such modifications and variations as fall within the true spirit and scope of the invention. 

1. A filtering system, comprising: a classification module, to analyze a current pixel neighborhood of an input image, wherein the classification module generates a visual significant measure based on the analysis; a transfer function to generate blending coefficients, α₁, . . . , α_(n), for integer n; and n ring filters, to filter the pixel neighborhood, the pixel neighborhood being partitioned into n ring environments, wherein each ring environment is filtered by a different ring filter.
 2. The filtering system of claim 1, further comprising: an alpha blending module to receive the blending coefficients from the transfer function and outputs from the ring filters; wherein the alpha blending module generates the following value as an output: P _(out) =PR ₀+α₁ PR ₁+α₂ PR ₂+ . . . +α_(n) PR _(n),
 3. The filtering system of claim 1, the multiple ring filters further comprising: a first ring filter, R₁; a second ring filter, R₂; and a third ring filter, R₃; wherein the pixel neighborhood is partitioned into three ring environments.
 4. The filtering system of claim 3, wherein the blending is achieved according to the following function: P_(out)=PR₀+αPR₁+βPR₂.
 5. The filtering system of claim 3, wherein the pixel neighborhood is a 5×5 pixel neighborhood defined by $\left\{ P_{i,j} \right\}_{\underset{{j = {- 2}},2}{{i = {- 2}},2}}.$
 6. The filtering system of claim 5, further comprising filter coefficients defined as $\left\{ F_{i,j} \right\}_{\underset{{j = {- 2}},2}{{i = {- 2}},2}},$ wherein the output of the three ring filters, PR₀, PR₁, and PR₂, are given by: ${{PR}_{0} = P_{0,0}},{{PR}_{1} = {\sum\limits_{i,{j \in R_{1}}}{F_{i,j}\left( {P_{i,j} - P_{0,0}} \right)}}},{{PR}_{2} = {\sum\limits_{i,{j \in R_{2}}}{{F_{i,j}\left( {P_{i,j} - P_{0,0}} \right)}.}}}$
 7. The filtering system of claim 5, further comprising filter coefficients defined as $\left\{ F_{i,j} \right\}_{\underset{{j = {- 2}},2}{{i = {- 2}},2}},$ wherein the output of the first ring filter, PR₀, is given by PR₀=P_(0,0).
 8. The filtering system of claim 5, further comprising filter coefficients defined as $\left\{ F_{i,j} \right\}_{\underset{{j = {- 2}},2}{{i = {- 2}},2}},$ wherein the output of the second ring filter, PR₁, is given by ${PR}_{1} = {\sum\limits_{i,{j \in R_{1}}}{F_{i,j}{\left( {P_{i,j} - P_{0,0}} \right).}}}$
 9. The filtering system of claim 5, further comprising filter coefficients defined as $\left\{ F_{i,j} \right\}_{\underset{{j = {- 2}},2}{{i = {- 2}},2}},$ wherein the output of the third ring filter, PR₂, is given by ${PR}_{2} = {\sum\limits_{i,{j \in R_{2}}}{{F_{i,j}\left( {P_{i,j} - P_{0,0}} \right)}.}}$
 10. A method for performing efficient filtering of an image, the method comprising: receiving the image, wherein the image is a 5×5 pixel neighborhood, defined by $\left\{ P_{i,j} \right\}_{\underset{{j = {- 2}},2}{{i = {- 2}},2}};$ filtering an outer portion of the image using a first ring filter, R₂, resulting in a first output; filtering a middle portion of the image using a second ring filter, R₁, resulting in a second output; filtering an inner portion of the image-using a third filter, R₀, resulting in a third output; and alpha-blending the first output, the second output, and the third output.
 11. The method for performing efficient filtering of claim 10, further comprising: performing neighborhood classification of the image to generate a continuous measure of a pixel neighborhood of the image, including data that are visually significant.
 12. The method for performing efficient filtering of claim 10, further comprising: executing a transfer function to generate coefficients, α and β; wherein the coefficients, α and β, are used to alpha-blend the first output, the second output, and the third output.
 13. The method for performing efficient filtering of claim 11, alpha-blending the first output, the second output, and the third output further comprising: executing the formula: P_(out)=PR₀+αPR₁+βPR₂.
 14. A method for performing efficient filtering of an image, the method comprising: receiving the image, wherein the image is an n×n pixel neighborhood, n being an integer; filtering a first portion of the image using a first ring filter, R₁, resulting in a first output; filtering a second portion of the image using a second ring filter, R₂, resulting in a second output; and filtering an third portion of the image using a third filter, R₃, resulting in a third output.
 15. The method for performing efficient filtering of claim 14, further comprising: filtering a fourth portion of the image using a fourth filter, R₄, resulting in a fourth output; and alpha-blending the first output, the second output, the third output, and the fourth output.
 16. The method for performing efficient filtering of claim 15, alpha blending the first output, the second output, the third output, and the fourth output further comprising: executing the function, P_(out)=PR₀+α₁PR₁+α₂PR₂+α₃PR₃, where α₁, α₂, and α₃ are blending coefficients.
 17. The method for performing efficient filtering of claim 14, further comprising: filtering a fourth portion of the image using a fourth filter, R₄, resulting in a fourth output; filtering a fifth portion of the image using a fifth filter, R₅, resulting in a fifth output; and alpha-blending the first output, the second output, the third output, the fourth output, and the fifth output.
 18. The method for performing efficient filtering of claim 17, alpha blending the first output, the second output, the third output, the fourth output, and the fifth output further comprising: executing the function, P_(out)=PR₀+α₁PR₁+α₂PR₂+α₃PR₃+α₄PR₄, where α₁, α₂, α₃, and α₄ are blending coefficients.
 19. The method for performing efficient filtering of claim 14, further comprising: filtering a fourth portion of the image using a fourth filter, R₄, resulting in a fourth output; filtering a fifth portion of the image using a fifth filter, R₅, resulting in a fifth output; filtering a sixth portion of the image using a sixth filter, R₆, resulting in a sixth output; and alpha-blending the first output, the second output, the third output, the fourth output, the fifth output, and the sixth out put.
 20. The method for performing efficient filtering of claim 19, alpha blending the first output, the second output, the third output, the fourth output, the fifth output, and the sixth output further comprising: executing the function, P_(out)=PR₀+α₁PR₁+α₂PR₂+α₃PR₃+α₄PR₄+α₅PR₅, where α₁, α₂, α₃, α₄, and α₅ are blending coefficients. 